package com.azt.provider.mapper;

import com.azt.api.dto.*;
import com.azt.api.pojo.EnqEnquiry;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;

import java.util.List;
import java.util.Map;

public interface EnqEnquiryMapper extends Mapper<EnqEnquiry> {

	List<IndexEnquiry> findIndexEnquiry(@Param("companyId") Integer companyId, @Param("pageSize") Integer pageSize);

	int getIndexEnquiryCount();

	List<EnqEnquiry> getEnqEnquiryList(Map<String, String> searchMap);

	List<EnqQuoteListDto> getQuoteAnalysisList(Map<String, String> searchMap);

	Integer ifAnalysisQuote(Integer enquiryId);

	/**
	 * 会关联project查
	 * Created by 张栋 on 2016/9/20 14:41
	 */
	EnqEnquiry getEnqEnquiryById(Integer id);


    /**
     * 根据id查看询价表,并联 project ,并联  enqItem
     * Created by 张栋 on 2016/10/13 10:26
     */
    EnqEnquiry getEnqEnquiryByIdWidthItem(@Param("enqid") Integer enqid,@Param("userid") Integer userid);


	/**
	 * front 我的项目列表,查询检索
	 * Created by 张栋 on 2016/9/18 13:26
	 */
    List<EnqProjListDto> getMyProject(@Param("dto")EnqProjSearchDto dto, @Param("companies")List<Integer> companies);

    /**
     * 我的项目,详情,采购/设计 列表
     * '1.设计需求 2.采购询价',
     * Created by 张栋 on 2016/9/19 10:24
     */
    List<EnqProjDetailDto> getEnqProjDetail(@Param("projid") Integer projid, @Param("qtype") Integer qtype, @Param("userid") Integer userid, @Param("companies")List<Integer> companies);

	/*
	* 供应商平台推送列表
	*
	* */
	List<PushEnquiryListDto> getPushEnquiryList(PushEnqirySearchDto psd);

	List<PushEnquiryListDto> getWechatPushEnquiryList(PushEnqirySearchDto psd);

	/**
	 * 根据公司获取平台推送的询价数量
	 * @param companyId
	 * @return
	 */
	Integer getPushEnquiryCount(Integer companyId);


	/**
	 *
	 * 供应商参与询价列表
	 * @param psd
	 * @return
	 */
	List<QuoteListDto> getMyQuoteList(PushEnqirySearchDto psd);


	/**
	 * 首页我参与的询价
	 * @param userId
	 * @param companyId
	 * @return
	 */
	List<QuoteListDto> getCenterQuoteList(@Param("userId") Integer userId , @Param("companyId") Integer companyId);

	/**
	 * 我参与的询价数量查询
	 * @param userId
	 * @param companyId
	 * @param qtype
	 * @return
	 */
	Integer getMyQuoteCount(@Param("userId") Integer userId , @Param("companyId") Integer companyId , @Param("qtype") Integer qtype);


	/**
	 * 获取询价的信息  其中会判断供应商是否有资格报价
	 * @param id
	 * @param companyId
	 * @return
	 */
	QuoteEnquiryDto getQuoteInfo(@Param("id") Integer id ,  @Param("companyId") Integer companyId);


	/**
	 * 基本的获取询价信息的方法  没什么限制条件
	 * @param id
	 * @return
	 */
	QuoteEnquiryDto getBaseEnquiryInfo(@Param("id") Integer id);

	/**
	 * 公开发布采购询价
	 * 获取推荐供应商
	 * Created by 张栋 on 2016/10/11 9:50
	 */
    List<EnqPurchaseRecommend> getEnqRecommend(Integer companyid);

	/**
	 * 后台询价列表数据获取方法
	 * @param qtype   设计询价1   采购询价2
	 * @param type 未审核1  已审核2 已截止3
	 * @return
	 */
	List<Map<String , Object>> getBackEnquiryList(Map<String, String> searchMap);

	/**后台询价列表数据获取方法(仅用来获取数量)
	 * @param qtype   设计询价1   采购询价2
	 * @param type 未审核1  已审核2 已截止3
	 * @param searchMap
	 * @return
	 */
	Integer getBackEnquiryListNum(Map<String, String> searchMap);

	/**
	 * 在询价子表获取系统id
	 * @param enquiryItemId
	 * @return
	 */
	Integer getCategoryIdByItemId(Integer enquiryItemId);


	/**
	 * 定时任务需要的询价,为判断当前时间
	 * Created by 张栋 on 2016/11/23 13:57
	 */
    List<EnqEnquiry> getTaskEnqByStates(@Param("states") List<Integer> states);

	/**
	 * 获取公开发布需要通知的供应商
	 * Created by 张栋 on 2016/11/28 11:26
	 */
    List<Integer> getAllNeedSMSCompany(@Param("provinceCode")String provinceCode, @Param("categorys")List<Integer> categorys);

	/**
	 * 公开询价,设计询价  关联查接受短信的人
	 * Created by 张栋 on 2016/11/28 14:59
	 */
	List<Integer> getMsgEnquirySend(@Param("provinceCode") String provinceCode, @Param("qtype") Integer qtype,@Param("sids") List<Integer> enqSIds,@Param("excludeids") List<Integer> excludeids);

	/**
	 * 项目汇查询列表
	 * */
	List<Map> searchXmh(Map param);


	/**
	 * 项目汇详情页关注单位
	 * @param enquiryId
	 * @param orderDown
	 * @return
	 */
	List<Map> getFocusCompanys(@Param("enquiryId") Integer enquiryId , @Param("orderDown") Integer orderDown);

	/**
	 * 项目汇详情中的最新发布
	 * @param companyId
	 * @return
	 */
	List<PushEnquiryListDto> getNewPush(@Param("companyId") Integer companyId , @Param("pageSize") Integer pageSize);

	/**
	 * 获取该询价下的所有系统id
	 * Created by 张栋 on 2016/12/21 17:10
	 */
	List<Integer> getEnqCategorySids(Integer enquiryid);

	/**
	 * 统计,项目所在地
	 * Created by 张栋 on 2017/1/4 15:54
	 */
    List<EcharsProjectArea> projectArea();

	/**
	 * 统计设置地区坐标
	 * Created by 张栋 on 2017/1/4 16:03
	 */
	void updateEcharsGrid(@Param("id") Integer id, @Param("x")String x, @Param("y")String y);


	EnqEnquiry categorySure(@Param("enquiryId") Integer enquiryId, @Param("companyId") Integer companyId);

	/**
	 * 查询最新询价，生成 sitemap
     */
	List<EnqEnquiry> selectBySize(@Param("size") int size);

}